import { logout } from "@/common";
import axios from "axios";
import { ElMessage } from "element-plus";

const instance = axios.create({
  baseURL: '/api',
  timeout: 5000
})


instance.interceptors.request.use((config) => {
  // 统一处理 token 请求头
  let token = localStorage.getItem('token')
  if (token) {
    config.headers = config.headers || {};
    config.headers.Authorization = token
  }
  return config;
}, err => Promise.reject(err))

instance.interceptors.response.use(res => {
  // token过期
  if (res.data.code === 401) {
    // 退出登录，强制用户重新登录
    logout();
  }
  if (res.data.errno === 0) {
    return res.data;
  }
  // 请求错误统一处理
  if (res.data.code !== 200) {
    ElMessage.error(res.data.message)
  }
  return res.data
}, err => {
  // 当发现是 取消请求的时候，不提示
  if (err.code !== "ERR_CANCELED") {
    // 网络错误统一处理
    ElMessage.error(err.code + ',' + err.message)
  }

  Promise.reject(err)
})
export default instance;